**1. 干什么** macOS 终端命令为 BSD 同源的用户态小程序,经 libSystem 调 POSIX 系统调用进入 XNU,链路与 Linux 同源,差异在参数风格与追加的围栏检查。 **2. 谁在调** * 用户态主体:Shell、ls、cat、ps。 * 系统层封装:libSystem、open/read/write/getdirentries。 * 内核态主体:BSD 陷阱、APFS 驱动与围栏裁决。 **3. 做什么业务** Shell 接到命令名后 fork、exec 加载 Mach-O 程序。cat 调 open 取得描述符、read 搬磁盘字节、write 输出终端,读完 close、exit。ls 调 getdirentries 取回目录项后在用户态排版。参数风格继承 BSD,与 GNU 版偶有差异。同一条读文件链路额外检查 TCC 授权、沙盒策略与 SIP 保护区。 **4. 组件清单** * BSD 用户态命令集 * libSystem POSIX 封装 * open/read/write/getdirentries *